#!/usr/bin/env node

//8. 操作标准输入输出流
//逐条打印提示信息：姓名、邮箱、QQ 号和手机号码
//读取用户键盘输入信息，保存到对象中
//用户键盘输入结束后，打印完整的对象信息
//用户随时可以按 Ctrl + D，终止信息输入，打印对象信息，程序结束运行

const stdout = process.stdout,
      stdin = process.stdin;

let question = ['Name','Email','QQ','Moblie'];
let num = 0;
let usr = {};


//console.log('name:') 不用这个会换行
//stdout.write('name:'); //标准的输出流不会换行
//stdin.read() //返回值不是输入的内容

stdout.write(question[num] + ': ');
stdin.resume(); //返回的buffer 是十六进制ascall码
stdin.on('data',(chunk)=>{
  //console.log(chunk);
  usr[question[num]]=chunk.slice(0,chunk.length-1).toString('utf8');
  if(num == 3){
    console.log(usr);
    process.exit(); //当数组遍历完了之后，自动结束进程，不会再出现undefined: 然后ctrl+d手动结束之后多一个undedined
  }
  stdout.write(question[++num] + ':');
});
stdin.on('end',()=>{   //按ctrl+d触发结束事件
  //console.log('exit');
  console.log(''); //手动结束后，换行更美观。
  console.log(usr); //在输入过程中不想继续输入，手动结束进程后打印对象
});



